import { ajax, isLogin } from '../utils/ajax.js';
import '../lib/jquery.js';
import { nickTest, sexTest, ageTest } from '../utils/reg.js';

(async () => {
    // 检查用户是否登录
    const loginCheck = await isLogin();
    if (loginCheck.status !== 1) {
        alert('请先登录！');
        location.href = './login.html';
        return;
    }

    // 将用户数据渲染到表单
    const user = loginCheck.user;
    $('.username').val(user.username);
    $('.age').val(user.age);
    $('.gender').val(user.gender);
    $('.nickname').val(user.nickname);

    // 绑定表单提交事件
    $('form').on('submit', async (e) => {
        e.preventDefault(); // 阻止表单默认提交行为

        // 获取用户输入的数据
        const age = $('.age').val().trim();
        const gender = $('.gender').val().trim();
        const nickname = $('.nickname').val().trim();

        // 验证输入是否为空
        if (!age) return alert('年龄不能为空');
        if (!gender) return alert('性别不能为空');
        if (!nickname) return alert('昵称不能为空');

        // 使用正则表达式进行格式校验
        if (!ageTest(age)) return alert('年龄格式错误');
        if (!sexTest(gender)) return alert('性别格式错误');
        if (!nickTest(nickname)) return alert('昵称格式错误');

        // 准备发送到服务器的数据
        const userData = {
            id: user.id,
            age,
            gender,
            nickname
        };

        // 发送更新用户信息的请求
        const updateResult = await ajax.post('/users/update', userData, {
            headers: { authorization: loginCheck.token }
        });

        // 检查响应码，确认操作是否成功
        if (updateResult.data.code !== 1) {
            alert('修改失败');
            return;
        }

        // 提示用户修改成功
        alert('修改成功');
    });
})();